/**
 * Created with IntelliJ IDEA.
 * Description: 类型-》类
 * User: GaoBo
 * Date: 2021-04-18
 * Time: 10:42
 */

class Person {
    /**
     *
     * 字段-》成员变量 -> 属性：定义在类的内部，方法的外部.
     * 成员变量的默认值 是期对应的0值。
     * 引用类型：null
     *          1、普通成员变量
     * 成员变量：
     *         2、 静态成员变量
     */
    public String name;
    public int age;
    public String sex;

    /**
     *             1、普通成员方法
     * 函数    方法-》
     *             2、静态成员方法
     */
    public void eat() {
        /*int a;
        System.out.println(a);*/
        System.out.println(name+" eat()");
    }

    public void show() {
        System.out.println("姓名："+name+" 年龄："+age+" 性别："+sex);
    }

    //alt+insert
    @Override
    public String toString() {
        return "Person{" +
                "姓名='" + name + '\'' +
                ", 年龄=" + age +
                ", 性别='" + sex + '\'' +
                '}';
    }
}

public class TestDemo2 {


    /**
     * 匿名对象：
     *   用途：如果当前对象只使用1次。
     * @param args
     */
    public static void main(String[] args) {

        System.out.println(new Person());
        new Person().show();
        new Person().age = 10;

        Person p = new Person();
        p.age = 10;
        p.show();
    }

    public static void main6(String[] args) {
        String str = "gaobo";
        System.out.println(str);
    }

    public static void main5(String[] args) {
        Person p = new Person();
        p.name = "gaobo";
        p.age = 10;
        p.sex = "男";
        //对象的引用. 属性名
        System.out.println(p.name);
        System.out.println(p.age);
        System.out.println(p.sex);
        //对象的引用. 方法名
        p.eat();
        p.show();

        System.out.println(p);

    }

    public static void main4(String[] args) {
        Person p = new Person();
        p = new Person();
        p = new Person();
        p = new Person();
    }

    public static void main3(String[] args) {
        Person p = null;
        p.name = "gaobo";
        System.out.println(p.name);
    }

    public static void main2(String[] args) {
        Person p = new Person();
        p.name = "gaobo";
        //对象的引用. 属性名
        System.out.println(p.name);
        System.out.println(p.age);
        //对象的引用. 方法名
        p.eat();
    }

    public static void main1(String[] args) {
        //int a = 10;//局部变量
        //实例化一个对象 通过new 关键字
        Person p = new Person();
        Person p2 = new Person();
        Person p3 = new Person();
        Person p4 = new Person();
    }

}
